#ifndef PRIORITY_HEAP_H
#define PRIORITY_HEAP_H

#include "prerequisites.h"
#include <vector>

template <class Comparable>
class PriorityHeap 
{
public:
	PriorityHeap(uint32 capacity = 50);
	//~BinaryHeap(){}

	void insert(const Comparable& comparable);
	const Comparable& findMin() const;

	void deleteMin();
	bool isEmpty() const;
	void clear();
private:
	void bubbleDown(uint32 hole);
private:
	 uint32 size_;
	 std::vector<Comparable> heapArray_;

	
};

#include "priorityheap.inl"

#endif // PRIORITY_HEAP_H